You need to install MPW C++ 3.2 or later or Symantec C++ for MPW 7.0.3 or later if you want to do 68K shared library development with shared C++ classes and to build some of the 68k examples. You do not need C++ if you are just developing function sets or if you are writing a non C++ client.
Native PowerPC Development
==========================
If you want to do native PowerPC shared library development, you will need to use MPW 3.3.2 from ETO #15 or later, which contains the Macintosh On Risk development tools. If you are NOT using PPCLink 1.2 (from the Prerelease MPW folder) then you will need to pass the -oldPPCLink option to BuildSharedLibrary and LinkSharedLibrary.
Universal Header Files
====================
You will need to use the new universal header files for both 68k and PowerPC development. They are available with the latest MPW (3.3.2) on ETO#15 and later.
Using MrC and PPCC
==================
ASLM 2.0 does support the MrC PowerPC compiler (both MrC and MrCpp). The MPW PPCC compiler is not supported.
Using CodeWarrior
==================
The Metrowerks CodeWarrior development environment is only supported for the development of clients. You cannot build a shared library using CodeWarrior. This is similar to the current support for users of the Symantec 68k THINK development environmnet. You will need to import the LibraryManagerPPC.o file from the MrCLibraries folder (for PowerPC development) or the LibraryManager.o file from the CFrontLibraries folder (for 68k development). For PowerPC development you may also need to import the MPW PPCCRuntime.o library. In addition you will also need to supply the implementation of a small routine called ASLMatexit() as follows:
#ifdef __cplusplus
extern "C" int ASLMatexit(void*);
#endif
int ASLMatexit(void*)
{
return(1);
}
Be sure to link the routine in before LibraryManager.o. and LibraryManagerPPC.o.
Note: At this time the CodeWarrior support is considered experimental. Thorough testing is not done for building ASLM clients with CodeWarrior, but bugs are fixed when reported and developers have successfully built clients (including OpenTransport clients) using CodeWarrior.
Using the Symantec C++ MPW tool
==============================
The Symantec SC and SCpp tools are now officially supported by ASLM and the support is no longer considered experimental. However, there are still a few bugs. Please read the "Symantec Products and the ASLM" document for details.
Using THINK C/C++
=================
You can use the THINK C/C++ 7.0 development environment to develop ASLM clients only. You cannot build shared libraries. The LibraryManagerTest1 example in the ASLM Examples folder can be imported into the Think C/C++ environment to be built. See the notes in the Libraries section below for more details.
THINK C/C++ support is still considered experimental since thorough testing is not done. However, bugs are fixed when reported. Please read the "Symantec Products and the ASLM" document for more information.
Documentation
==============
Details on what the ASLM is and how to use it are located in the ASLM Documentation folder.
Examples
=========
Examples can be found in the ASLM Examples folder. There is also a Read Me! file in the folder with more information on the examples.
Debugging Tools
==============
Debugging tools can be found in the ASLM Debugging Tools folder. There is also a Read Me! file in the folder with more information on the debugging tools.
Interface files
===============
The "Interfaces" folder contains "RIncludes", "PInterfaces", and "CIncludes". "CIncludes" and "PInterfaces" contain the interface files that ASLM developers will need. "RIncludes" contains the template for the 'libr' resource which you can use to derez your library's 'libr' resources. The header files support both 68k and PowerPC development.
Libraries
==========
The "Libraries" folders contains 5 subfolders, each of which contains the libraries you will need to link with for a given MPW tool or development environment. The five folders are:
•THINKLibraries for users of the Symantec THINK development environment.
•SCLibraries for users of the Symantec SC and SCpp MPW tools.
•CFrontLibraries for users of the C and CFront MPW tools.
•MrCLibraries for users of the MrC and MrCpp MPW tools.
Each folder will contain a LibraryManager.o file (LibraryManagerPPC.o for MrC) which both library and application writers will need to link with. There are also model near versions of LibraryManager.o named LibraryManager.n.o . They are only for near model 68k clients to use since libraries are always created using model far. There are also debug versions (LibraryManager.debug.o and LibraryManager.debug.n.o) which contain macsbug symbols (for 68k) and debugger breaks. The debug versions are useful for assisting in debugging while developing your ASLM clients and libraries.
In the THINKLibraries folder, LibraryManager.o has been split into 2 files. LibraryManagerClient.o is the file that all THINK clients need to link with and LibraryManagerUtils.o is the file that THINK C++ users will also need to link with if they use any of the ASLM utility classes.
The CFrontLibraries folder also contains TestLibrary.o wich you will need to link with if you want to subclass the TTestTool class.
Tools
======
The "Tools" folder contains MPW scripts and tools needed to create shared libraries. They include CreateLibraryLoadRsrc, CreateLibraryLoadRsrcPPC, LibraryBuilder, LibraryBuilderPPC, BuildSharedLibrary, and LinkSharedLibrary. The BuildSharedLibrary and LinkSharedLibrary scripts work for both 68k and native PowerPC development. The -powerpc option must be pass when building native PowerPC shared libraries.
Questions?
==========
If you have any questions please AppleLink Gary Hornbuckle, the Apple Shared Library Manager Product Marketing Manager, at HORNBUCKLE1. Technical questions and bug reports should be sent to DEVSUPPORT. Please cc: HORNBUCKLE1 in this case.